package com.pro.controller;

import com.pro.pojo.*;
import com.pro.service.CourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @ClassName: CourseController
 * @Author: Kai
 * @DATE: 2022/1/13
 * @TIME: 下午 04:33
 */
@RestController
@RequestMapping(value = "Course")
public class CourseController {

    @Autowired
    private CourseService courseService;

    /* 功能描述: <br>
    * 〈查询所有课程类型〉
    *
    * @param
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/13 下午 04:37
    */
    @RequestMapping(value = "getAllCourseClasses")
    public JsonData getAllCourseClasses(){
        List<CourseClass> allCourseClasses = courseService.getAllCourseClasses();
        return allCourseClasses.size() > 0 ? JsonData.buildSuccess(allCourseClasses) : JsonData.buildError("没有查询到");
    }

    /* 功能描述: <br>
    * 〈添加课程类型〉
    *
    * @param courseClass
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/14 上午 10:21
    */
    @RequestMapping(value = "addCourseClass")
    public JsonData addCourseClass(CourseClass courseClass){
        Boolean addCourseClass = courseService.addCourseClass(courseClass);
        return addCourseClass ? JsonData.buildSuccess(addCourseClass) : JsonData.buildError("添加失败");
    }

    /* 功能描述: <br>
    * 〈修改课程类型〉
    *
    * @param courseClass
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/14 上午 10:23
    */
    @RequestMapping(value = "updateCourseClass")
    public JsonData updateCourseClass(CourseClass courseClass){
        Boolean updateCourseClass = courseService.updateCourseClass(courseClass);
        return updateCourseClass ? JsonData.buildSuccess(updateCourseClass) : JsonData.buildError("修改失败");
    }

    /* 功能描述: <br>
    * 〈删除课程类型〉
    *
    * @param id
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/14 上午 10:23
    */
    @RequestMapping(value = "deleteCourseClass")
    public JsonData deleteCourseClass(Integer id){
        Boolean deleteCourseClass = null;
        try {
            deleteCourseClass = courseService.deleteCourseClass(id);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return deleteCourseClass ? JsonData.buildSuccess(deleteCourseClass) : JsonData.buildError("删除失败");
    }

    /* 功能描述: <br>
    * 〈查询所有课程〉
    *
    * @param course
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/14 上午 08:39
    */
    @RequestMapping(value = "getAllCourse")
    public JsonData getAllCourse(JsCourse course){
        List<JsCourse> allCourse = courseService.getAllCourse(course);
        return allCourse.size() > 0 ? JsonData.buildSuccess(allCourse) : JsonData.buildError("没有查询到");
    }

    /* 功能描述: <br>
    * 〈修改课程〉
    *
    * @param course
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/15 上午 08:52
    */
    @RequestMapping(value = "updateCourse")
    public JsonData updateCourse(JsCourse course, JsCourseJournal jsCourseJournal){
        Boolean updateCourse = null;
        try {
            updateCourse = courseService.updateCourse(course, jsCourseJournal);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return updateCourse ? JsonData.buildSuccess(updateCourse) : JsonData.buildError("修改失败");
    }

    /* 功能描述: <br>
    * 〈根据id查看课程〉
    *
    * @param id
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/15 上午 09:52
    */
    @RequestMapping(value = "getCourseById")
    public JsonData getCourseById(Integer id, Integer type){
        JsCourse courseById = courseService.getCourseById(id, type);
        return courseById != null ? JsonData.buildSuccess(courseById) : JsonData.buildError("没有查询到");
    }

    /* 功能描述: <br>
    * 〈查看课程价格历史信息〉
    *
    * @param courseJournal
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/15 下午 02:55
    */
    @RequestMapping(value = "getCourseJournal")
    public JsonData getCourseJournal(CourseJournal courseJournal){
        List<CourseJournal> courseJournal1 = courseService.getCourseJournal(courseJournal);
        return courseJournal1.size() > 0 ? JsonData.buildSuccess(courseJournal1) : JsonData.buildError("没有查询到");
    }

    /* 功能描述: <br>
    * 〈根据id删除课程〉
    *
    * @param id
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/21 下午 04:38
    */
    @RequestMapping(value = "deleteCourse")
    public JsonData deleteCourse(Integer id){
        Boolean deleteCourseById = null;
        try {
            deleteCourseById = courseService.deleteCourse(id);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return deleteCourseById ? JsonData.buildSuccess(deleteCourseById) : JsonData.buildError("没有查询到");
    }

    /* 功能描述: <br>
    * 〈添加课程信息〉
    *
    * @param course
    * @return: com.pro.pojo.JsonData
    * @Author: Kai
    * @Date: 2022/1/23 上午 09:54
    */
    @RequestMapping(value = "addCourse")
    public JsonData addCourse(JsCourse course, CourseRecord courseRecord){
        Boolean addCourse = null;
        try {
            addCourse = courseService.addCourse(course, courseRecord);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return addCourse ? JsonData.buildSuccess(addCourse) : JsonData.buildError("没有查询到");
    }


    @RequestMapping(value = "getCourseListsByUserId")
    public JsonData getCourseListsByUserId(JsCourse course){
        List<JsCourse> courseListsByUserId = courseService.getCourseListsByUserId(course);
        return JsonData.buildSuccess(courseListsByUserId);
    }

    /*
     * @param course
     * @return: com.pro.pojo.JsonData
     * @Author: Kai
     * @Date: 2022/2/10 上午 09:39
     * author: Ypq
     */
    //获取课程名称
    @RequestMapping("/getTitle")
    @ResponseBody
    public JsonData getTitle(){
        List<JsCourse> title = courseService.getTitle();
        return title!=null?JsonData.buildSuccess(title):JsonData.buildError("服务器错误");
    }
    /*
     * @param course
     * @return: com.pro.pojo.JsonData
     * @Date: 2022/2/10 上午 09:39
     * author: Ypq
     */
    //获取课程点击次数
    @RequestMapping("/getHits")
    @ResponseBody
    public JsonData getHits(){
        List<JsCourse> title = courseService.getHits();
        return title!=null?JsonData.buildSuccess(title):JsonData.buildError("服务器错误");
    }
    /*
     * @param course
     * @return: com.pro.pojo.JsonData
     * @Date: 2022/2/10 上午 09:50
     * author: Ypq
     */
    //获取课程收藏次数
    @RequestMapping("/getCollection")
    @ResponseBody
    public JsonData getCollection(){
        List<JsCourse> title = courseService.getCollection();
        return title!=null?JsonData.buildSuccess(title):JsonData.buildError("服务器错误");
    }
    /*
     * @param course
     * @return: com.pro.pojo.JsonData
     * @Date: 2022/2/10 上午 10:45
     * author: Ypq
     */
    @RequestMapping("/getFenXiang")
    @ResponseBody
    public JsonData getFenXiang(){
        List<JsCourse> title = courseService.getFenXiang();
        return title!=null?JsonData.buildSuccess(title):JsonData.buildError("服务器错误");
    }
}
